package pe.edu.upc.dsd.debuggers.pedido.model.service;

import java.util.ArrayList;
import org.apache.log4j.Logger;
import java.util.Date;
import java.util.List;

import javax.jws.WebService;


import pe.edu.upc.dsd.debuggers.gulda.webservice.Service1Locator;
import pe.edu.upc.dsd.debuggers.gulda.webservice.Service1Soap;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Documento;

@WebService(endpointInterface = "pe.edu.upc.dsd.debuggers.pedido.model.service.DocumentoService")
public class DocumentoServiceImpl implements DocumentoService{

	public Logger log = Logger.getLogger(PedidoServiceImpl.class);
	
	public DocumentoServiceImpl(){
	}

	@Override
	public List<Documento> buscarDocumentosPorCliente(String codCliente, String docEstado, String fechaIni, String fechaFin) {
		log.info("en el metodo: buscarDocumentosPorCliente");
		pe.edu.upc.dsd.debuggers.gulda.webservice.Documentos documento = new pe.edu.upc.dsd.debuggers.gulda.webservice.Documentos();
		List<Documento> lisDoc= new ArrayList<Documento>();
		Documento docs= null;
		try { 
			Service1Locator service = new Service1Locator ();
            Service1Soap port = service.getService1Soap();
            System.out.println("Invocacion : " + codCliente + " " + docEstado + " " + fechaIni + " " + fechaFin);
            pe.edu.upc.dsd.debuggers.gulda.webservice.Documentos[] documentosResult = port.obtenerDocumentosXCliente(codCliente, docEstado, fechaIni, fechaFin);
            System.out.println("Cantidad de documentos :" + documentosResult.length);
		 	log.info("Cantidad de documentos :" + documentosResult.length);
		 	
            for (int i = 0; i < documentosResult.length; i++) {
            	documento = documentosResult[i];
    			docs = new Documento();
    			docs.setTipo(documento.getDOC_TipoDoc());
    			docs.setSerie(documento.getDOC_SerieDoc());
    			docs.setNumero(documento.getDOC_NroDoc());
    			docs.setMonto(documento.getDOC_Monto()!= null && documento.getDOC_Monto() != "" ? Double.parseDouble(documento.getDOC_Monto()) : 0);
    			docs.setSaldo(documento.getDOC_Saldo()!= null && documento.getDOC_Saldo() != "" ? Double.parseDouble(documento.getDOC_Saldo()) : 0);
    			docs.setRetraso(documento.getDOC_Retraso());
    			docs.setReferencia(documento.getDOC_Referencia());
    			docs.setFechaDocumento(documento.getDOC_FechaDoc());
    			docs.setFechaVencimiento(documento.getDOC_FechaVenc());
    			lisDoc.add(docs);
    		}
			 
		} catch (Exception ex) {
	    	log.error(ex.getMessage());
	        ex.printStackTrace();
	    }
		 
		// TODO Auto-generated method stub
		return lisDoc;
	}

}
